Stepping motors are used nowadays in diverse applications for positioning in technical equipment. They allow accurately stepped positioning without position feedback. If high positioning accuracy is required, it is necessary, as a rule, to operate the stepping motors in microstepping operation. In this case, the user makes high demands on the true running and on the low degree of vibration of the motor even in the case of high traversing speeds which are necessary in order to rapidly reach more remote positions.
The use of stepping motors in microstepping operation is described for example in "Elektrische Kleinmotoren" [Low-power electric motors] by H. Moczala et al., Expert-Verlag, 1993, pages 261-263, and "Schrittmotorantriebe" [Stepping motor drives] by F. Prautzsch, Franzis-Verlag, 1988, pages 70-76. The principles shall be briefly explained below.
Microstepping operation is understood to mean the supply of the stepping motor with sinusoidally stepped motor currents instead of motor currents with rectangular block waveforms in full- and half-step operation. The values of the stepped motor currents are present as desired current values in a stored sine table. The individual, successive table values are read out one after the other by the motor controller and the motor currents are generated from these. In this case, a temporally limited motor current value of a specific level corresponds to each table value. A new motor current value per phase in each case causes the motor to move further by one microstep. The sine table is constructed in such a way that read-out of the successive table locations always gives a fixed step size.
The number of full steps of a stepping motor is governed by the design. A complete sine period of the motor current corresponds to a rotation of the stepping motor by four full steps. Therefore, the number of table locations for a full sine period corresponds to the number of microsteps allotted to four full steps. The number of table locations per sine period therefore determines the step size of the microsteps and hence the positional resolution of the stepping motor.
The rotational speed of the motor is set by increasing or reducing the stepping frequency, in other words by changing the time intervals between the steps. The stepping frequency required for a desired rotational speed of the stepping motor is calculated from the product of "number of full steps of the stepping motor times number of microsteps times number of desired revolutions per second".
In the known stepping motor drives, the sine table containing the digital desired current values for the motor current is stored in a memory, for example an EPROM. If the stepping motor is intended to move to a specific target position, a CPU calculates the microstep sequence, necessary for reaching the target position, with in each case constant step sizes in the form of a sequence of sinusoidally stepped motor current values and the required stepping frequency for the desired rotational speed.
In accordance with the length of the sequence of microsteps that has been previously calculated by the CPU, the digital desired current values necessary for this purpose are read from successive table locations of the sine table at the stepping frequency calculated by the CPU.
The digital desired current values for the motor currents that are read out are converted by a D/A converter into analog desired current values, which appear as stepped analog signals with an approximately sinusoidal basic form at the output of the D/A converter. The motor current (actual value) is generated as a temporal sequence of stepped motor current values from the output signals of the D/A converter in an output stage. In a manner corresponding to the digital desired current values read from the sine table, these generated motor current values are stepped with a staircase waveform, corresponding approximately to a sine curve. In the same way, the correspondingly phase-shifted motor current value is generated for each of the phases of the stepping motor for each microstep. The stepping motor executes one microstep for each new motor current value per phase.
The number of sinusoidally stepped motor current values that are calculated up to a target position corresponds to the number of microsteps necessary for reaching the motor target position. The target position reached in each case lies at the end of a microstep. The possible resolution of the target position is given by the size of the microsteps and hence by the number of table locations of the sine table. If the intention is to move to positions between two microsteps, this is not possible with the sine table given. An increase in the resolution of the target position can only be achieved by a more finely divided sine table and thus by a higher number of smaller microsteps. This requires the CPU to calculate a longer step sequence. For different positional resolutions, therefore, it is necessary to store differently finely divided sine tables in memories. An increase in the rotational speed of the stepping motor is possible only by means of an even higher stepping frequency. This also additionally requires higher CPU capacities.
The known controllers have the disadvantages of the very high stepping frequencies that are necessary given a high resolution and, at the same time, high rotational speed of the stepping motor, and the large CPU capacity that is necessary as a result of this, because the CPU generates the stepping frequencies and calculates the step sequences. Furthermore, accelerated movements additionally require continuous variation of the stepping frequency. Low accelerations and high rotational speeds in microstepping operation require, at relatively high resolutions, very long step sequences and extremely fast changes in the time between the steps, these changes no longer being technically feasible. Therefore, high rotational speeds of the stepping motor are possible only with reduced positional resolution, that is to say additionally stored smaller sine tables with fewer table values. However, a reduction in the positioning resolution and hence lower frequencies lead to disturbingly loud motor running and vibrations. A high CPU capacity is likewise necessary in order to calculate the sequences of motor current values that are necessary for generating acceleration or deceleration profiles. As an alternative, a certain number of acceleration profiles could be calculated prior to operation and be stored in a memory. On account of the limited memory space, this restricts the traversing operation to this small number of stored acceleration profiles.